<?php
/**
 *  Clase para manejar las conexiones directas contra
 *  bases de datos SQLServer.
 *
 *  Autor : Equipo11
 *
 */
class MsSqlDriver {

  private $dbl;
  private $db_name = '[S8105GELECTORAL]';
  private $db_host = 'db1srv.chaco.gov.ar';//10.1.0.102 ??
  private $db_usr = 'ConsPadronDef';
  private $db_pwd = 'cualquiera';
  private $rs;

  /**
   * Conecta Directamente a la Base de Datos, en caso de
   * no pasar los parametros de conexion se toman los valores por
   * defecto.
   *
   * Esto es Invocado automaticamente por el consutructor de DataObject
   * por ende no es necesario explicitar la conexion.
   *
   * @param string $db_name
   * @param string $db_host
   * @param string $db_usr
   * @param string $db_pwd
   */
  public function connect($db_name = null, $db_host = null, $db_usr = null, $db_pwd = null){
    if(isset($this->db1)) $this->disconnect();
    
    if($db_name != null) $this->db_name = $db_name;
    if($db_host != null) $this->db_host = $db_host;
    if($db_usr != null)  $this->db_usr = $db_usr;
    if($db_pwd != null)  $this->db_pwd = $db_pwd;

    //echo $this->db_host.$this->db_usr.$this->db_pwd;
    
    if(!($this->dbl = mssql_connect($this->db_host,$this->db_usr,$this->db_pwd))){
      throw new Exception('Error al conectarse a la base');
    }

    if(!mssql_select_db($this->db_name,$this->dbl)){
      throw new Exception('Error al Seleccionar la base');
    }
  }

  /**
   * Cierra la Conexion actual a la Base
   */
  public function disconnect(){
      mssql_close($this->dbl);
  }
  
  /**
   * Realiza una Query en la base.
   *
   * Regresa un puntero a los resultados
   */
  public function query($sql){
    return mssql_query($sql,$this->dbl);
  }

  /**
   * Puntero a la conexion de la base
   *
   * @return database link
   */
  public function getConnection(){
    return $this->dbl;
  }

  /**
   * Realiza un fetch_array del Resource
   * @param resource_set $rs
   * @return Array
   */
  public function fetch($rs){
    return mssql_fetch_array($rs);
  }

  /**
   * Mueve el Resultset a la primera posicion
   * @param <type> $rs
   */
  public function goFirst(&$rs){
    mssql_data_seek($rs, 0);
  }
}

?>
